home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / zftape.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  88 lines

  1. #ifndef _ZFTAPE_H
  2. #define _ZFTAPE_H
  3.  
  4. /*
  5.  * Copyright (C) 1996, 1997 Claus-Justus Heine.
  6.  
  7.  This program is free software; you can redistribute it and/or modify
  8.  it under the terms of the GNU General Public License as published by
  9.  the Free Software Foundation; either version 2, or (at your option)
  10.  any later version.
  11.  
  12.  This program is distributed in the hope that it will be useful,
  13.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  GNU General Public License for more details.
  16.  
  17.  You should have received a copy of the GNU General Public License
  18.  along with this program; see the file COPYING.  If not, write to
  19.  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  20.  
  21.  *
  22.  * $Source: /homes/cvs/ftape-stacked/include/linux/zftape.h,v $
  23.  * $Revision: 1.12 $
  24.  * $Date: 1997/10/21 11:02:37 $
  25.  *
  26.  *      Special ioctl and other global info for the zftape VFS
  27.  *      interface for the QIC-40/80/3010/3020 floppy-tape driver for
  28.  *      Linux.
  29.  */
  30.  
  31. #define ZFTAPE_VERSION  "zftape for " FTAPE_VERSION
  32.  
  33. #include <linux/ftape.h>
  34.  
  35. #define ZFTAPE_LABEL       "Ftape - The Linux Floppy Tape Project!"
  36.  
  37. /* Bits of the minor device number that control the operation mode */
  38. #define ZFT_Q80_MODE        (1 << 3)
  39. #define ZFT_ZIP_MODE        (1 << 4)
  40. #define ZFT_RAW_MODE        (1 << 5)
  41. #define ZFT_MINOR_OP_MASK    (ZFT_Q80_MODE    |     \
  42.                  ZFT_ZIP_MODE    |     \
  43.                  ZFT_RAW_MODE)
  44. #define ZFT_MINOR_MASK        (FTAPE_SEL_MASK        |    \
  45.                  ZFT_MINOR_OP_MASK    |    \
  46.                  FTAPE_NO_REWIND)
  47.  
  48. #ifdef ZFT_OBSOLETE
  49. struct mtblksz {
  50.     unsigned int mt_blksz;
  51. };
  52. #define MTIOC_ZFTAPE_GETBLKSZ _IOR('m', 104, struct mtblksz)
  53. #endif
  54.  
  55. #ifdef __KERNEL__
  56.  
  57. extern int zft_init(void);
  58.  
  59. static inline __s64 zft_div_blksz(__s64 value, __u32 blk_sz)
  60. {
  61.     if (blk_sz == 1) {
  62.         return value;
  63.     } else {
  64.         return (__s64)(((__u32)(value >> 10) + (blk_sz >> 10) - 1) 
  65.                    / (blk_sz >> 10));
  66.     } 
  67. }
  68.  
  69. static inline __s64 zft_mul_blksz(__s64 value, __u32 blk_sz)
  70. {
  71.     if (blk_sz == 1) {
  72.         return value;
  73.     } else {
  74.         /*  if blk_sz != 1, then it is a multiple of 1024. In
  75.          *  this case, `value' will also fit into 32 bits.
  76.          * 
  77.          *  Actually, this limits the capacity to 42
  78.          *  bits. This is (2^32)*1024, roughly a thousand
  79.          *  times 2GB, or 3 Terabytes. Hopefully this is enough
  80.          */
  81.         return(__s64)(((__u32)(value)*(blk_sz>>10))<<10);
  82.     }
  83. }
  84.  
  85. #endif
  86.  
  87. #endif
  88.